其實,不得不說自己忘記說明有關陣列的用法了
陣列一次可以用來堆放多筆資料,這必然是大家都了解的用途,而如果有比較深入去了解的人,就會知道它其實還可以做更進一階的操作:二維陣列,而二維陣列的用途就像是一個類似在進行比較物品的表格,好比在比較多個電腦型號的時候,它的硬體配置、實際效能、價錢、網路評價...等的項目,那麼就開始實際操作吧!
Demo資料包含以下四個分類(有依順序排列):
產品編號(Serial_num):nac149ac, nac149xc, mes177hc, mes177hxc
產品顯示卡(Garphic_card):NVMX130, NVMX150, NVGTX1070, NVGTX1080
實際效能定位(Actual_effect):NB, NB, BES, AES
價錢(Price):18900, 21950, 37990, 45900
就先「以資料類別進行堆疊」的方式進行陣列編排並執行print方法
輸出各產品資料:
serial_num = ["nac149ac", "nac149xc", "mes177hc", "mes177hxc"]
graphic_card = ["NVMX130", "NVMX150", "NVGTX1070", "NVGTX1080"]
actual_effect = ["NB", "NB", "BES", "AES"]
price = [18900, 21950, 37990, 45900]
def print_compare(sel, graph, actual, cost):
for comparsion in range(len(sel)):
print(str(sel[comparsion]), end=' ')
print(graph[comparsion], end=' ')
print(actual[comparsion], end=' ')
print(cost[comparsion])
print_compare(serial_num, graphic_card, actual_effect, price)
執行結果如下:
nac149ac NVMX130 NB 18900
nac149xc NVMX150 NB 21950
mes177hc NVGTX1070 BES 37990
mes177hxc NVGTX1080 AES 45900
這個執行結果確實符合預期,但是,接下來就是要來講一下在Python裡面比較特別的地方,也就是目錄式存放資料的複合陣列
,那廢話不多說,就直接操作吧:
serial_num = ["nac149ac", "nac149xc", "mes177hc", "mes177hxc"]
pc = {
#key = serial_num 的方式進行編排,並針對key來把資料完整歸納為統一格式
"nac149ac": ["NVMX130", "NB", 18900],
"nac149xc": ["NVMX150", "NB", 21950],
"mes177hc": ["NVGTX1070", "BES", 37990],
"mes177hxc":["NVGTX1080", "AES", 45900]
}
def print_sigdata(info):
for code in range(len(info)):
print(info[code])
#先要求印出型號
print(pc[str(info[code])])
#再要求印出該型號的詳細資料
print_sigdata(serial_num)
一樣來看看輸出結果:
nac149ac
['NVMX130', 'NB', 18900]
nac149xc
['NVMX150', 'NB', 21950]
mes177hc
['NVGTX1070', 'BES', 37990]
mes177hxc
['NVGTX1080', 'AES', 45900]
如果仔細比較一下的話,就會發現在下方的這個方法會是透過一個set
來存放一堆的list
,而上方的則是純粹用多個list
來存放資料,並沒有以key
的方式來進行編排這絕對不是在秀技術